/**
 * Copyright &copy; 2012-2017 <a href="https://vivo.com">vivo</a> All rights reserved.
 */
package com.vivo.employee.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.thinkgem.jeesite.common.persistence.Page;
import com.thinkgem.jeesite.common.service.CrudService;
import com.vivo.employee.entity.ViEmployee;
import com.vivo.employee.dao.ViEmployeeDao;

/**
 * 员工信息Service
 * @author jyangye
 * @version 2017-12-28
 */
@Service
@Transactional(readOnly = true)
public class ViEmployeeService extends CrudService<ViEmployeeDao, ViEmployee> {

    @Autowired
    private ViEmployeeDao viEmployeeDao;

	public ViEmployee get(String id) {
		return super.get(id);
	}
	
	public List<ViEmployee> findList(ViEmployee viEmployee) {
	    viEmployee.getSqlMap().put("dsf", dataScopeFilterByCompany(viEmployee.getCurrentUser(), "a"));
		return super.findList(viEmployee);
	}

	public ViEmployee getLastOutCodeEmp() {
	    ViEmployee query = new ViEmployee();
	    query.setCurStateId("1");
	    query.setCode("lz");

	    return query;
    }

	public List<ViEmployee> findNeedRecodeOutEmpList() {
	    ViEmployee query = new ViEmployee();
	    query.setCurStateId("1");
	    query.setCode("EC");

	    return findList(query);
    }


    public List<ViEmployee> getAllById(String id) {
        ViEmployee viEmployee = new ViEmployee();
        viEmployee.setId(id);
        viEmployee.getSqlMap().put("dsf", dataScopeFilterByCompany(viEmployee.getCurrentUser(), "a"));

        return viEmployeeDao.getAllById(viEmployee);
    }
	
	public Page<ViEmployee> findPage(Page<ViEmployee> page, ViEmployee viEmployee) {
        viEmployee.getSqlMap().put("dsf", dataScopeFilterByCompany(viEmployee.getCurrentUser(), "a"));
		return super.findPage(page, viEmployee);
	}
	
	@Transactional(readOnly = false)
	public void save(ViEmployee viEmployee) {
		super.save(viEmployee);
	}
	
	@Transactional(readOnly = false)
	public void delete(ViEmployee viEmployee) {
		super.delete(viEmployee);
	}


	public ViEmployee getSuper(ViEmployee viEmployee) {
	    return viEmployeeDao.getSuper(viEmployee);
    }

    public List<ViEmployee> findAjaxList(ViEmployee viEmployee) {
	    viEmployee.getSqlMap().put("dsf", dataScopeFilterByCompany(viEmployee.getCurrentUser(), "a"));
	    return viEmployeeDao.getAjaxList(viEmployee);
    }


    public List<ViEmployee> findNonUserList() {
	    return viEmployeeDao.getNonUserList();
    }

    public List<ViEmployee> findUnCompList() {
	    return viEmployeeDao.getUnCompList();
    }


    public List<ViEmployee> findYxtList() {
	    return viEmployeeDao.getYxtList();
    }


    public ViEmployee getEmpByIdentityCard(ViEmployee viEmployee) {
	    return viEmployeeDao.getEmpByIdentity(viEmployee);
    }

    public ViEmployee getByCode(String code) {
	    return viEmployeeDao.getByCode(code);
    }

    /**
     * 搜索所有岗位名称除了（业务代表、导购、共建导购、反聘人员、V店长、V顾问、V前台）之外的在职员工信息
     * @param viEmployee
     * @return
     */
    public List<ViEmployee> getNormalEmpList(ViEmployee viEmployee) {
	    return null;
    }


    /**
     *
     * @param viEmployee
     * @return
     */
    public List<ViEmployee> getSpecialEmpList(ViEmployee viEmployee) {
	    return null;
    }
}